The invention relates to a method of representing a material and to a corresponding rendering method.
The invention may be used in virtual navigation applications, in videogames, in animated films, etc.
Such applications include real-time rendering of virtual scenes in which real articles are represented by virtual articles.
In order to obtain a realistic rendering, the representation of an article requires not only a geometrical representation of the article (shape, size, etc.), but also a representation of the appearance of that article, and in particular of the interaction between the article and a light source.
This interaction depends on the material constituting the article. For example, for a translucent material such as skin, a light ray is reflected in part on the surface of the material, and it is absorbed in part. In another example, a material may have geometrical special features (relief, roughness, etc.) that disturb the path of light.
Functions exist for modeling the interaction between a light source and a material.
Thus, bidirectional reflectance distribution functions (BRDFs) represent the light energy reflected at the surface of a material. These functions are expressed relative to light directions and relative to viewpoints.
Certain materials, for example a metal surface, may be represented by a BRDF function. Such a representation is not possible for a complex material having a surface that is not uniform, for example a surface that is granular or a surface that presents variations in color, etc.
Spatially-varying bidirectional reflectance distribution functions (SVBRDFs) or bidirectional texture functions (BTFs) are then used, which are expressed relative to light directions and to viewpoints, and also relative to the surface of the material. BTF functions make it possible to represent materials having a surface that can give rise to parallax effects, whereas SVBRDF functions are suitable only for representing materials having a surface that is practically plane.
BTF functions are constituted by a dataset, also known as a “texture”, and they have six dimensions. The data is obtained from a set of images of the material in which each image is associated with a light direction and with a viewpoint. The six dimensions correspond to the spatial coordinates of the pixels of an image, which coordinates are equivalent to the points at the surface of the material, to the polar coordinates of the light directions, and to the polar coordinates of the viewpoints.
Once acquired, this data is transformed, and in particular it is compressed in order to obtain a function that is compact, i.e. of small size, for reasons of storage space, and in order to enable rendering to take place quickly on graphics hardware. One of the difficulties to be solved during compression is to obtain a compact function that is as close as possible to the original function derived from acquiring the data, thereby limiting the error that is due to the compression.
Numerous techniques exist for compressing BTF functions, including parametric approximation techniques.
Thus, in an article entitled “Polynomial Texture Map” published in SIGGRAPH '01: Proceedings of the 28th annual conference on computer graphics and interactive techniques, pp 519-528, New York, N.Y., USA, 2001, Tom Malzbender et al. describe a parametric approximation technique for a BTF function in which the approximation is performed by a set of polynomials. For a fixed viewpoint, specifically the front viewpoint, a polynomial is defined for each pixel depending on the directional variations of light.
Each pixel or point on the surface of the material receives light from a set of directions. A direction corresponds to an axis passing through the point in question and a point on the surface of a hemisphere having its base resting on the material. The directions of light belong to a space having three dimensions. The technique of Tom Malzbender et al. consists in projecting the directions of the light into a two-dimensional space and in approximating the resulting surface by polynomials. The projection used is an orthogonal projection.
That technique presents a drawback of being defined for a single determined viewpoint, namely the front viewpoint. Representing a material from a single viewpoint is not sufficient for use in a dynamic photo-realistic environment.
In the paper entitled “Preserving realism in real-time rendering of bidirectional texture functions” published in the context of the OpenSG Symposium 2003, pp 89-96, Eurographics Association, Switzerland, April 2003, J. Meseth et al. apply the above technique to each viewpoint of the set of visible viewpoints. Unfortunately, the effects induced by varying the direction of the light are not uniform with viewpoint. For example, a material may tend to become more specular, i.e. it may reflect more light, for directions in which the light is grazing. Consequently, it is not appropriate to use the same type of projection from one viewpoint to another.
That technique presents another drawback, relating to the size of the dataset, which size increases linearly with the number of viewpoints.